<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>

        class Person{
            constructor(name){
                this.name = name
            }
        }

        class Dog{
            constructor(name){
                this.name = name
            }
        }

        class Test{

        }

        const dog = new Dog('旺财')
        const person = new Person("孙悟空")
        const test = new Test()

        // console.log(dog)
        // console.log(person)

        /* 
            定义一个函数，这个函数将接收一个对象作为参数，他可以输出hello并打印对象的name属性


            多态
                - 在JS中不会检查参数的类型，所以这就意味着任何数据都可以作为参数传递
                - 要调用某个函数，无需指定的类型，只要对象满足某些条件即可
                - 如果一个东西走路像鸭子，叫起来像鸭子，那么它就是鸭子
                - 多态为我们提供了灵活性
        */
       function sayHello(obj){
            // if(obj instanceof Person){
                console.log("Hello,"+obj.name)
            // }
       }

       sayHello(dog)

    </script>
</head>
<body>
    
</body>
</html>